using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using IGlobalist.Cms.Model;
namespace IGlobalist.Cms.Presentation
{
    public class RenderContext : IDictionary
    {
        private PageList _PageList;

        public PageList PageList
        {
            get { return _PageList; }
            set { _PageList = value; }
        }
        private ContentCategoryList _CategoryList;

        public ContentCategoryList CategoryList
        {
            get { return _CategoryList; }
            set { _CategoryList = value; }
        }

        private ContentNoteList _NoteList;

        public ContentNoteList NoteList
        {
            get { return _NoteList; }
            set { _NoteList = value; }
        }

        private IPage _CurrentPage;

        public IPage CurrentPage
        {
            get { return _CurrentPage; }
            set { _CurrentPage = value; }
        }
        private IContentCategory _CurrentCategory;

        public IContentCategory CurrentCategory
        {
            get { return _CurrentCategory; }
            set { _CurrentCategory = value; }
        }

        private IContentCategory _CategoryNode;
        public IContentCategory CategoryNode
        {
            get { return _CategoryNode; }
            set { _CategoryNode = value; }
        }

        private IContent _CurrentContent;

        public IContent CurrentContent
        {
            get { return _CurrentContent; }
            set { _CurrentContent = value; }
        }

        private IProduct _CurrentProduct;
        public IProduct CurrentProduct
        {
            get { return _CurrentProduct; }
            set { _CurrentProduct = value; }
        }

        private ContentList _ContentList;

        public ContentList ContentList
        {
            get { return _ContentList; }
            set { _ContentList = value; }
        }

        private ProductList _ProductList;
        public ProductList ProductList
        {
            get { return _ProductList; }
            set { _ProductList = value; }
        }

        private AdContentList _AdContentList;

        public AdContentList AdContentList
        {
            get { return _AdContentList; }
            set { _AdContentList = value; }
        }

        private VideoList _VideoList;

        public VideoList VideoList
        {
            get { return _VideoList; }
            set { _VideoList = value; }
        }

        private VideoList _VideoSubList;

        public VideoList VideoSubList
        {
            get { return _VideoSubList; }
            set { _VideoSubList = value; }
        }

        private VideoList _VideoViewList;

        public VideoList VideoViewList
        {
            get { return _VideoViewList; }
            set { _VideoViewList = value; }
        }

        private VideoList _VideoRateList;

        public VideoList VideoRateList
        {
            get { return _VideoRateList; }
            set { _VideoRateList = value; }
        }

        private Video _VideoCurrent;

        public Video VideoCurrent
        {
            get { return _VideoCurrent; }
            set { _VideoCurrent = value; }
        }

        private PageList _forumList;
        public PageList ForumList
        {
            get { return _forumList; }
            set { _forumList = value; }
        }


        #region IDictionary Members
        private Hashtable _Data = new Hashtable();
        public void Add(object key, object value)
        {
            _Data.Add(key, value);
        }

        public void Clear()
        {
            _Data.Clear();
        }

        public bool Contains(object key)
        {
            return _Data.Contains(key);
        }

        public IDictionaryEnumerator GetEnumerator()
        {
            return _Data.GetEnumerator();
        }

        public bool IsFixedSize
        {
            get { return _Data.IsFixedSize; }
        }

        public bool IsReadOnly
        {
            get { return _Data.IsReadOnly; }
        }

        public ICollection Keys
        {
            get { return _Data.Keys; }
        }

        public void Remove(object key)
        {
            _Data.Remove(key);
        }

        public ICollection Values
        {
            get { return _Data.Values; }
        }

        public object this[object key]
        {
            get
            {
                return _Data[key];
            }
            set
            {
                _Data[key] = value;
            }
        }

        #endregion

        #region ICollection Members

        public void CopyTo(Array array, int index)
        {
            _Data.CopyTo(array, index);
        }

        public int Count
        {
            get { return _Data.Count; }
        }

        public bool IsSynchronized
        {
            get { return _Data.IsSynchronized; }
        }

        public object SyncRoot
        {
            get { return _Data.SyncRoot; }
        }

        #endregion

        #region IEnumerable Members

        IEnumerator IEnumerable.GetEnumerator()
        {
            return _Data.GetEnumerator();
        }

        #endregion
    }
}
